package com.eastfair.venueservice.service;

import com.eastfair.builder.dto.BindBuilderServiceProviderRoleDTO;
import com.eastfair.builder.dto.RemoveBuilderServiceProviderRoleDTO;
import com.eastfair.venueservice.entity.ServiceProvider;
import com.eastfair.venueservice.enumeration.ServiceProviderRoleEnum;

import java.util.List;

/**
 * 搭建商注册服务.
 *
 * @author dqq
 * @date 2022 /8/15
 */
public interface VenueManageBuilderRegisterService {

    /**
     * 绑定搭建商角色.
     *
     * @param bindBuilderServiceProviderRoleDTO the bind builder service provider role dto
     * @return the boolean
     */
    boolean bindBuilderServiceProviderRole(BindBuilderServiceProviderRoleDTO bindBuilderServiceProviderRoleDTO);

    /**
     * 绑定搭建商角色.
     *
     * @param userId              the user id
     * @param serviceProviderId   the service provider id
     * @param serviceProviderRole the service provider role
     * @return the boolean
     */
    boolean bindBuilderServiceProviderRole(Long userId, Long serviceProviderId, String serviceProviderName, String serviceProviderRole);

    /**
     * 移除搭建商角色.
     *
     * @param removeBuilderServiceProviderRoleDTOList the remove builder service provider role dto list
     * @return the boolean
     */
    boolean removeBuilderServiceProviderRole(List<RemoveBuilderServiceProviderRoleDTO> removeBuilderServiceProviderRoleDTOList);

    /**
     * 移除角色.
     *
     * @param list                    the list
     * @param serviceProviderRoleEnum the service provider role enum
     * @return the boolean
     */
    boolean removeRole(List<ServiceProvider> list, ServiceProviderRoleEnum serviceProviderRoleEnum);
}